package com.qzsoft.zhjd.machine.modules.machinedaily.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.qzsoft.zhjd.machine.modules.machinedaily.dto.MachineDailyListDto;
import com.qzsoft.zhjd.machine.modules.machinedaily.entity.MachineDailyEntity;

/**
 * @ClassName MachineDailyService
 * @Description 机械日报业务接口
 * @author linhuawei
 * @since 2021-11-05
 */
public interface MachineDailyService extends IService<MachineDailyEntity> {

    /**
     * @Title pageDto
     * @Description 获取日报数据分页列表
     * @param params 查询条件
     * @return 日报数据分页列表
     */
    public IPage<MachineDailyListDto> pageDto(Map<String, Object> params);

    /**
     * @Title daily
     * @Description 获取日报数据分页列表
     * @param params 查询条件
     * @return 日报数据分页列表
     */
    public IPage<MachineDailyEntity> page(Map<String, Object> params);

    /**
     * @Title dailyWithWorkrecords
     * @Description 获取日报数据分页列表
     * @param params 查询条件
     * @return 日报数据分页列表
     */
    public IPage<MachineDailyEntity> dailyWithWorkrecords(Map<String, Object> params);

    /**
     * @Title monthCountByMachineId
     * @Description 统计本月工时、油耗信息
     * @param machineId 设备主键
     * @return 统计本月工时、油耗信息
     */
    public MachineDailyEntity monthCountByMachineId(String machineId);

    /**
     * @Title listForMachine
     * @Description 获取设备日报列表
     * @param machineId
     * @param params
     * @return
     */
    public List<MachineDailyEntity> listForMachine(String machineId, Map<String, Object> params);

    /**
     * @Title save
     * @Description 添加指定日期日报数据
     * @param entity     数据对象
     * @param reportDate 日期信息
     */
    public void save(MachineDailyEntity entity, Date reportDate);

}
